10. CNN's in Image Segmentation

Image Segmentation with Deep Learning

Convolutional neural networks are generally associated with image classification tasks where these networks learn to recognize objects given lots of labeled data. Given many images of dogs, CNN's can be used to accurately identify many different breeds and sizes of dogs better than many humans. However, humans often don't just look for one object at a time to recognize and identify; they often look at the many pieces and objects that make up a scene -- background, foreground, perceived movement, and arrangement of objects -- and we form a larger understanding of what is actually happening in an image. This is much more than classification; it's interpretation and breaking an image into many important pieces.

The first step in this is accurate segmentation, and many CNN architectures have been developed to help with this task.

From classification to segmentation

One of the most basic use of CNN's in image segmentation is actually an extended classification algorithm. Instead of recognizing single objects; CNN's can be trained to classify every pixel in an image so that the image is broken up into these different segments. This can be a very slow learning process, so other, faster algorithms are still being researched and developed. Some networks learn from smaller maps of image features, which we'll learn more about soon. You're encouraged to read about the latest CNN segmentation techniques, here.

Pixel-level image segmentation by CNN

Pixel-level image segmentation by CNN